<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    // 定义函数方式1：函数表达式的方式，将函数作为表达式使用，此时函数的角色是表达式，函数表达式的名字可以省略。
    const fn0 = function () { } // 整体是语句，function(){}是函数表达式
    const fn = function fn1() { } // 整体是语句，function fn1() {}是函数表达式

    // 定义函数方式2：函数声明的方式，此时函数的角色是语句，函数语句中的函数名不可以省略。
    function fn2() { } // 这是语句

    (function () { })() // 匿名函数自调用，准确的说是，立即执行函数表达式

    var result = (function () { })();// result的结果是undefined，这个undefined来自表达式(function () { })()，而不是来自语句(function () { })();   注意这里的分号; 
  </script>
</body>

</html>